CosyOS-II API 用户参考手册  1.0.3
宏定义
二值信号量

二值信号量常用于线程同步、互斥访问。 更多...

二值信号量 的协作图:

宏定义

#define uExternBin(bin)   sCSV_ExternBin(bin)
 声明二值信号量 更多...
 
#define uCreateBin(bin, init)   sCSV_CreateBin(bin, init)
 创建二值信号量 更多...
 
#define uLockBin(bin)    bin.binary = false
 上锁二值信号量 更多...
 
#define uWaitBin(bin, tc)   sUSV_WaitBin(bin, tc)
 等待二值信号量 更多...
 
#define uGiveBin(bin)    sUSV_GiveBin(bin)
 给予二值信号量 更多...
 
#define uTakeBin(bin, tc)   sUSV_TakeBin(bin, tc)
 获取二值信号量 更多...
 
#define uBackBin(bin)    uGiveBin(bin)
 归还二值信号量 更多...
 

详细描述

二值信号量常用于线程同步、互斥访问。

宏定义说明

#define uBackBin (   bin)    uGiveBin(bin)

归还二值信号量

参数
[in]bin二值信号量名称
返回
注解
同型服务:
tBackBin(bin)
iBackBin(bin)

在文件 ur_api.h940 行定义.

#define uCreateBin (   bin,
  init 
)    sCSV_CreateBin(bin, init)

创建二值信号量

参数
[in]bin二值信号量名称
[in]init二值信号量初始值 [0:上锁,1:xx]
返回

在文件 ur_api.h877 行定义.

#define uExternBin (   bin)    sCSV_ExternBin(bin)

声明二值信号量

参数
[in]bin二值信号量名称
返回

在文件 ur_api.h869 行定义.

#define uGiveBin (   bin)    sUSV_GiveBin(bin)

给予二值信号量

参数
[in]bin二值信号量名称
返回
注解
同型服务:
tGiveBin(bin)
iGiveBin(bin)
pGiveBin(bin)

在文件 ur_api.h914 行定义.

#define uLockBin (   bin)    bin.binary = false

上锁二值信号量

用于终止线程的无限同步。

参数
[in]bin二值信号量名称
返回
注解
同型服务:
tLockBin(bin)
iLockBin(bin)
pLockBin(bin)

在文件 ur_api.h889 行定义.

#define uTakeBin (   bin,
  tc 
)    sUSV_TakeBin(bin, tc)

获取二值信号量

参数
[in]bin二值信号量名称
[in]tc滴答周期(超时时间)
+0:立即返回
~0:无限等待
返回
结果(bool)
返回值
false失败
true成功
注解
同型服务:
tTakeBin(bin)
iTakeBin(bin)
警告
任务中获取,不支持在临界区中,包括任务临界区、服务层临界区、全局临界区,或关闭总中断时调用。

在文件 ur_api.h930 行定义.

#define uWaitBin (   bin,
  tc 
)    sUSV_WaitBin(bin, tc)

等待二值信号量

在指定的超时时间内等待二值信号量为真,适用于任务的无限同步,与获取的区别是不上锁。

参数
[in]bin二值信号量名称
[in]tc滴答周期(超时时间)
+0:立即返回
~0:无限等待
返回
结果(bool)
返回值
false失败
true成功
警告
不支持在临界区中,包括任务临界区、服务层临界区、全局临界区,或关闭总中断时调用。

在文件 ur_api.h903 行定义.